home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / MiscKit1.7.1 / MiscKit / Headers / misckit / MiscFileDefs.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-12  |  2.5 KB  |  76 lines

  1. // Copyright (C) 1995 Robert Todd Thomas
  2.  
  3. // Most file functions (chmod, link, etc) return 0 for success and -1 for
  4. // error. If there was an error, you can ask the MiscFile for the errorCode
  5. // which will be one of MiscFileStatus (directly below).
  6. #define MISCFILE_ERROR -1
  7. #define MISCFILE_SUCCESS 0
  8.  
  9.  
  10. // Enums defined from <sys/errno.h>. Most of the ones related to files are here
  11. // I think (and some that probably don't).
  12. enum MiscFileStatus
  13. {
  14.     MISCFILE_NOERROR,                    // no error (zero)
  15.     MISCFILE_NOT_OWNER,                    // EPERM
  16.     MISCFILE_NO_SUCH_FILE,                // ENOENT
  17.     MISCFILE_NO_SUCH_PROCESS,            // ESRCH
  18.     MISCFILE_INTERRUPTED_SYS_CALL,        // EINTR
  19.     MISCFILE_IO_ERROR,                    // EIO
  20.     MISCFILE_NO_SUCH_DEVICE,            // ENXIO
  21.     MISCFILE_ARG_LIST_TOO_LONG,            // E2BIG
  22.     MISCFILE_EXEC_FORMAT_ERROR,            // ENOEXEC
  23.     MISCFILE_BAD_FILE_NUM,                // EBADF
  24.     MISCFILE_NO_CHILDREN,                // ECHILD
  25.     MISCFILE_NO_MORE_PROCESSES,            // EAGAIN
  26.     MISCFILE_NOT_ENOUGH_CORE,            // ENOMEM
  27.     MISCFILE_PERMISSION_DENIED,            // EACCES
  28.     MISCFILE_BAD_ADDRESS,                // EFAULT
  29.     MISCFILE_BLOCK_DEV_REQUIRED,        // ENOTBLK    
  30.     MISCFILE_MOUNT_DEV_BUSY,            // EBUSY
  31.     MISCFILE_FILE_EXISTS,                // EEXIST
  32.     MISCFILE_CROSS_DEV_LINK,            // EXDEV
  33.     MISCFILE_NO_SUCH_DEV,                // ENODEV
  34.     MISCFILE_NOT_A_DIR,                    // ENOTDIR
  35.     MISCFILE_IS_A_DIR,                    // EISDIR
  36.     MISCFILE_INVALID_ARG,                // EINVAL
  37.     MISCFILE_FILE_TABLE_OVERFLOW,        // ENFILE
  38.     MISCFILE_TOO_MANY_OPEN_FILES,        // EMFILE
  39.     MISCFILE_NOT_A_TYPEWRITER,            // ENOTTY
  40.     MISCFILE_TEXT_FILE_BUSY,            // ETXTBSY
  41.     MISCFILE_FILE_TOO_LARGE,            // EFBIG
  42.     MISCFILE_NO_SPACE_ON_DEV,            // ENOSPC
  43.     MISCFILE_ILLEGAL_SEEK,                // ESPIPE
  44.     MISCFILE_READ_ONLY_FILESYS,            // EROFS
  45.     MISCFILE_TOO_MANY_LINKS,            // EMLINK
  46.     MISCFILE_BROKEN_PIPE,                // EPIPE
  47.     MISCFILE_ARG_TOO_LARGE,                // EDOM
  48.     MISCFILE_RESULT_TOO_LARGE,            // ERANGE
  49. };
  50.  
  51. // Defines used for setPermissions::, getPermissions::, addPermissions:: and
  52. // removePermissions::. The first three are also for the access: method.
  53. #define MISCFILE_READ        4
  54. #define MISCFILE_WRITE        2
  55. #define MISCFILE_EXECUTE    1
  56.  
  57. #define MISCFILE_SETUID        8
  58. #define MISCFILE_SETGID        16
  59. #define MISCFILE_STICKY        32
  60.  
  61. #define MISCFILE_OWNER        1
  62. #define MISCFILE_GROUP        2
  63. #define MISCFILE_OTHER        4
  64.  
  65. // Used for access:
  66. #define MISCFILE_EXISTS        0
  67. //#define MISCFILE_NOACCESS    0
  68.  
  69.  
  70. // Used internally to keep track of which function was called last.
  71. // Since we are caching the resulting structure, we have to know what
  72. // data is in the structure (for symlinks it can be either lstat or stat info).
  73. #define MISCFILE_STAT    0
  74. #define MISCFILE_LSTAT  1
  75.  
  76.